package flags

type FlagAttribute struct {
	flags int
}

func (self *FlagAttribute) SetFlag(f int) {
	self.flags |= f
}

func (self *FlagAttribute) HasFlag(f int) bool {
	return (self.flags & f) != 0
}

func (self *FlagAttribute) PullFlag(f int) bool {
	if self.HasFlag(f) {
		self.flags ^= f
		return true
	}
	return false
}
